class Solution
{
public:
    int monotoneIncreasingDigits(int n)
    {
        if (n < 10)
        {
            return n;
        }
        string ns = to_string(n);
        int i = 1;
        int highestDecBit = ns.size();
        while (i < ns.size())
        {
            if (ns[i] < ns[i - 1])
            {
                ns[i] = '9';
                if (i <= highestDecBit)
                {
                    highestDecBit = i - 1;
                    --ns[i - 1];
                    i = 1;
                }
            }
            else
            {
                ++i;
            }
        }
        return stoi(ns);
    }
};